home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / thinkref / archive / THINKPascalUH2.1.sea / THINKPas Univ Hdr 2.1 / Interfaces / AIFF.p < prev    next >
Text File  |  1995-09-12  |  5KB  |  226 lines

  1. { Converted with MPW2TPas Tuesday, September 12, 1995 5:11:59 PM }
  2. {
  3.      File:        AIFF.p
  4.  
  5.      Contains:    Definition of AIFF file format components.
  6.  
  7.      Version:    Technology:    System 7.5
  8.                  Package:    Universal Interfaces 2.1 in “MPW Latest” on ETO #18
  9.  
  10.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  11.                  All rights reserved.
  12.  
  13.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  14.                  stack.  Include the file and version information (from above)
  15.                  in the problem description and send to:
  16.                      Internet:    apple.bugs@applelink.apple.com
  17.                      AppleLink:    APPLE.BUGS
  18.  
  19. }
  20.  
  21.  UNIT AIFF;
  22.  INTERFACE
  23.  
  24.  
  25. {$IFC UNDEFINED __AIFF__}
  26. {$SETC __AIFF__ := 1}
  27.  
  28.   USES
  29.    ConditionalMacros, Types;
  30.  
  31. { $PUSH}
  32. { $ALIGN MAC68K}
  33. { $LibExport+}
  34.  
  35. CONST
  36.     AIFFID                        = 'AIFF';
  37.     AIFCID                        = 'AIFC';
  38.     FormatVersionID                = 'FVER';
  39.     CommonID                    = 'COMM';
  40.     FORMID                        = 'FORM';
  41.     SoundDataID                    = 'SSND';
  42.     MarkerID                    = 'MARK';
  43.     InstrumentID                = 'INST';
  44.     MIDIDataID                    = 'MIDI';
  45.     AudioRecordingID            = 'AESD';
  46.     ApplicationSpecificID        = 'APPL';
  47.     CommentID                    = 'COMT';
  48.     NameID                        = 'NAME';
  49.     AuthorID                    = 'AUTH';
  50.     CopyrightID                    = '(c) ';
  51.     AnnotationID                = 'ANNO';
  52.  
  53.     NoLooping                    = 0;
  54.     ForwardLooping                = 1;
  55.     ForwardBackwardLooping        = 2;
  56. { AIFF-C Versions }
  57.     AIFCVersion1                = $A2805140;
  58.  
  59. { Compression Names }
  60.     NoneName     = 'not compressed';
  61.     ACE2to1Name  = 'ACE 2-to-1';
  62.     ACE8to3Name  = 'ACE 8-to-3';
  63.     MACE3to1Name = 'MACE 3-to-1';
  64.     MACE6to1Name = 'MACE 6-to-1';
  65.  
  66. { Compression Types }
  67.     NoneType                    = 'NONE';
  68.     ACE2Type                    = 'ACE2';
  69.     ACE8Type                    = 'ACE8';
  70.     MACE3Type                    = 'MAC3';
  71.     MACE6Type                    = 'MAC6';
  72.  
  73.     
  74. TYPE
  75.     ID = LONGINT;
  76.  
  77.     MarkerIdType = INTEGER;
  78.  
  79.     ChunkHeader = RECORD
  80.         ckID:                    ID;
  81.         ckSize:                    LONGINT;
  82.     END;
  83.  
  84.     ContainerChunk = RECORD
  85.         ckID:                    ID;
  86.         ckSize:                    LONGINT;
  87.         formType:                ID;
  88.     END;
  89.  
  90.     FormatVersionChunk = RECORD
  91.         ckID:                    ID;
  92.         ckSize:                    LONGINT;
  93.         timestamp:                LONGINT;
  94.     END;
  95.  
  96.     FormatVersionChunkPtr = ^FormatVersionChunk;
  97.  
  98.     CommonChunk = RECORD
  99.         ckID:                    ID;
  100.         ckSize:                    LONGINT;
  101.         numChannels:            INTEGER;
  102.         numSampleFrames:        LONGINT;
  103.         sampleSize:                INTEGER;
  104.         sampleRate:                extended80;
  105.     END;
  106.  
  107.     CommonChunkPtr = ^CommonChunk;
  108.  
  109.     ExtCommonChunk = RECORD
  110.         ckID:                    ID;
  111.         ckSize:                    LONGINT;
  112.         numChannels:            INTEGER;
  113.         numSampleFrames:        LONGINT;
  114.         sampleSize:                INTEGER;
  115.         sampleRate:                extended80;
  116.         compressionType:        ID;
  117.         compressionName:        PACKED ARRAY [0..0] OF CHAR;            { variable length array, Pascal string }
  118.     END;
  119.  
  120.     ExtCommonChunkPtr = ^ExtCommonChunk;
  121.  
  122.     SoundDataChunk = RECORD
  123.         ckID:                    ID;
  124.         ckSize:                    LONGINT;
  125.         offset:                    LONGINT;
  126.         blockSize:                LONGINT;
  127.     END;
  128.  
  129.     SoundDataChunkPtr = ^SoundDataChunk;
  130.  
  131.     Marker = RECORD
  132.         id:                        MarkerIdType;
  133.         position:                LONGINT;
  134.         markerName:                Str255;
  135.     END;
  136.  
  137.     MarkerChunk = RECORD
  138.         ckID:                    ID;
  139.         ckSize:                    LONGINT;
  140.         numMarkers:                INTEGER;
  141.         Markers:                ARRAY [0..0] OF Marker;                    { variable length array }
  142.     END;
  143.  
  144.     MarkerChunkPtr = ^MarkerChunk;
  145.  
  146.     AIFFLoop = RECORD
  147.         playMode:                INTEGER;
  148.         beginLoop:                MarkerIdType;
  149.         endLoop:                MarkerIdType;
  150.     END;
  151.  
  152.     InstrumentChunk = PACKED RECORD
  153.         ckID:                    ID;
  154.         ckSize:                    LONGINT;
  155.         baseFrequency:            UInt8;
  156.         detune:                    UInt8;
  157.         lowFrequency:            UInt8;
  158.         highFrequency:            UInt8;
  159.         lowVelocity:            UInt8;
  160.         highVelocity:            UInt8;
  161.         gain:                    INTEGER;
  162.         sustainLoop:            AIFFLoop;
  163.         releaseLoop:            AIFFLoop;
  164.     END;
  165.  
  166.     InstrumentChunkPtr = ^InstrumentChunk;
  167.  
  168.     MIDIDataChunk = RECORD
  169.         ckID:                    ID;
  170.         ckSize:                    LONGINT;
  171.         MIDIdata:                PACKED ARRAY [0..0] OF SInt8; { UInt8 } { variable length array }
  172.     END;
  173.  
  174.     MIDIDataChunkPtr = ^MIDIDataChunk;
  175.  
  176.     AudioRecordingChunk = RECORD
  177.         ckID:                    ID;
  178.         ckSize:                    LONGINT;
  179.         AESChannelStatus:        PACKED ARRAY [0..23] OF SInt8; { UInt8 }
  180.     END;
  181.  
  182.     AudioRecordingChunkPtr = ^AudioRecordingChunk;
  183.  
  184.     ApplicationSpecificChunk = RECORD
  185.         ckID:                    ID;
  186.         ckSize:                    LONGINT;
  187.         applicationSignature:    OSType;
  188.         data:                    PACKED ARRAY [0..0] OF SInt8; { UInt8 } { variable length array }
  189.     END;
  190.  
  191.     ApplicationSpecificChunkPtr = ^ApplicationSpecificChunk;
  192.  
  193.     Comment = RECORD
  194.         timeStamp:                LONGINT;
  195.         marker:                    MarkerIdType;
  196.         count:                    INTEGER;
  197.         text:                    PACKED ARRAY [0..0] OF CHAR;            { variable length array, Pascal string }
  198.     END;
  199.  
  200.     CommentsChunk = RECORD
  201.         ckID:                    ID;
  202.         ckSize:                    LONGINT;
  203.         numComments:            INTEGER;
  204.         comments:                PACKED ARRAY [0..0] OF Comment;            { variable length array }
  205.     END;
  206.  
  207.     CommentsChunkPtr = ^CommentsChunk;
  208.  
  209.     TextChunk = RECORD
  210.         ckID:                    ID;
  211.         ckSize:                    LONGINT;
  212.         text:                    PACKED ARRAY [0..0] OF CHAR;            { variable length array, Pascal string }
  213.     END;
  214.  
  215.     TextChunkPtr = ^TextChunk;
  216.  
  217.  
  218. { $ALIGN RESET}
  219. { $POP}
  220.  
  221. {$ENDC} {__AIFF__}
  222.  
  223.  IMPLEMENTATION
  224.  END.
  225.  
  226.